package co.edu.usbcali.dataaccess.dao;

import co.edu.usbcali.modelo.ActaEvaluacion;

import java.math.BigDecimal;

import java.util.Date;
import java.util.List;
import java.util.Set;


/**
 * Interface for ActaEvaluacionDAO.
 *
 * @author Zathura Code Generator http://code.google.com/p/zathura
 */
public interface IActaEvaluacionDAO {
    // property constants
    //public static final Double  CALAVG = "calAvg";
    public static final String CALAVG = "calAvg";

    //public static final Long  CALCINCO = "calCinco";
    public static final String CALCINCO = "calCinco";

    //public static final Long  CALCUATRO = "calCuatro";
    public static final String CALCUATRO = "calCuatro";

    //public static final Long  CALDIEZ = "calDiez";
    public static final String CALDIEZ = "calDiez";

    //public static final Long  CALDOCE = "calDoce";
    public static final String CALDOCE = "calDoce";

    //public static final Long  CALDOS = "calDos";
    public static final String CALDOS = "calDos";

    //public static final Long  CALNUEVE = "calNueve";
    public static final String CALNUEVE = "calNueve";

    //public static final Long  CALOCHO = "calOcho";
    public static final String CALOCHO = "calOcho";

    //public static final Long  CALONCE = "calOnce";
    public static final String CALONCE = "calOnce";

    //public static final Long  CALSEIS = "calSeis";
    public static final String CALSEIS = "calSeis";

    //public static final Long  CALSIETE = "calSiete";
    public static final String CALSIETE = "calSiete";

    //public static final Long  CALTRECE = "calTrece";
    public static final String CALTRECE = "calTrece";

    //public static final Long  CALTRES = "calTres";
    public static final String CALTRES = "calTres";

    //public static final Long  CALUNO = "calUno";
    public static final String CALUNO = "calUno";

    //public static final String  CARACTERIZACIONEV = "caracterizacionEv";
    public static final String CARACTERIZACIONEV = "caracterizacionEv";

    //public static final Long  CODEV = "codEv";
    public static final String CODEV = "codEv";

    //public static final String  DEBILIDADEV = "debilidadEv";
    public static final String DEBILIDADEV = "debilidadEv";

    //public static final Date  FECHAEV = "fechaEv";
    public static final String FECHAEV = "fechaEv";

    //public static final String  FORTALEZAEV = "fortalezaEv";
    public static final String FORTALEZAEV = "fortalezaEv";

    /**
    * Perform an initial save of a previously unsaved ActaEvaluacion entity. All
    * subsequent persist actions of this entity should use the #update()
    * method. This operation must be performed within the a database
    * transaction context for the entity's data to be permanently saved to the
    * persistence store, i.e., database. This method uses the
    * {@link javax.persistence.EntityManager#persist(Object) EntityManager#persist}
    * operation.
    *
    * <pre>
    * EntityManagerHelper.beginTransaction();
    * IActaEvaluacionDAO.save(entity);
    * EntityManagerHelper.commit();
    * </pre>
    *
    * @param entity
    *            ActaEvaluacion entity to persist
    * @throws RuntimeException
    *             when the operation fails
    */
    public void save(ActaEvaluacion entity);

    /**
    * Delete a persistent ActaEvaluacion entity. This operation must be performed
    * within the a database transaction context for the entity's data to be
    * permanently deleted from the persistence store, i.e., database. This
    * method uses the
    * {@link javax.persistence.EntityManager#remove(Object) EntityManager#delete}
    * operation.
    *
    * <pre>
    * EntityManagerHelper.beginTransaction();
    * IActaEvaluacionDAO.delete(entity);
    * EntityManagerHelper.commit();
    * entity = null;
    * </pre>
    *
    * @param entity
    *            ActaEvaluacion entity to delete
    * @throws RuntimeException
    *             when the operation fails
    */
    public void delete(ActaEvaluacion entity);

    /**
    * Persist a previously saved ActaEvaluacion entity and return it or a copy of it
    * to the sender. A copy of the ActaEvaluacion entity parameter is returned when
    * the JPA persistence mechanism has not previously been tracking the
    * updated entity. This operation must be performed within the a database
    * transaction context for the entity's data to be permanently saved to the
    * persistence store, i.e., database. This method uses the
    * {@link javax.persistence.EntityManager#merge(Object) EntityManager#merge}
    * operation.
    *
    * <pre>
    * EntityManagerHelper.beginTransaction();
    * entity = IActaEvaluacionDAO.update(entity);
    * EntityManagerHelper.commit();
    * </pre>
    *
    * @param entity
    *            ActaEvaluacion entity to update
    * @return ActaEvaluacion the persisted ActaEvaluacion entity instance, may not be the
    *         same
    * @throws RuntimeException
    *             if the operation fails
    */
    public ActaEvaluacion update(ActaEvaluacion entity);

    public ActaEvaluacion findById(Long id);

    /**
    * Find all ActaEvaluacion entities with a specific property value.
    *
    * @param propertyName
    *            the name of the ActaEvaluacion property to query
    * @param value
    *            the property value to match
    * @param rowStartIdxAndCount
    *            Optional int varargs. rowStartIdxAndCount[0] specifies the the
    *            row index in the query result-set to begin collecting the
    *            results. rowStartIdxAndCount[1] specifies the the maximum
    *            count of results to return.
    * @return List<ActaEvaluacion> found by query
        */
    public List<ActaEvaluacion> findByProperty(String propertyName,
        Object value, int... rowStartIdxAndCount);

    public List<ActaEvaluacion> findByCriteria(String whereCondition);

    public List<ActaEvaluacion> findByCalAvg(Object calAvg);

    public List<ActaEvaluacion> findByCalAvg(Object calAvg,
        int... rowStartIdxAndCount);

    public List<ActaEvaluacion> findByCalCinco(Object calCinco);

    public List<ActaEvaluacion> findByCalCinco(Object calCinco,
        int... rowStartIdxAndCount);

    public List<ActaEvaluacion> findByCalCuatro(Object calCuatro);

    public List<ActaEvaluacion> findByCalCuatro(Object calCuatro,
        int... rowStartIdxAndCount);

    public List<ActaEvaluacion> findByCalDiez(Object calDiez);

    public List<ActaEvaluacion> findByCalDiez(Object calDiez,
        int... rowStartIdxAndCount);

    public List<ActaEvaluacion> findByCalDoce(Object calDoce);

    public List<ActaEvaluacion> findByCalDoce(Object calDoce,
        int... rowStartIdxAndCount);

    public List<ActaEvaluacion> findByCalDos(Object calDos);

    public List<ActaEvaluacion> findByCalDos(Object calDos,
        int... rowStartIdxAndCount);

    public List<ActaEvaluacion> findByCalNueve(Object calNueve);

    public List<ActaEvaluacion> findByCalNueve(Object calNueve,
        int... rowStartIdxAndCount);

    public List<ActaEvaluacion> findByCalOcho(Object calOcho);

    public List<ActaEvaluacion> findByCalOcho(Object calOcho,
        int... rowStartIdxAndCount);

    public List<ActaEvaluacion> findByCalOnce(Object calOnce);

    public List<ActaEvaluacion> findByCalOnce(Object calOnce,
        int... rowStartIdxAndCount);

    public List<ActaEvaluacion> findByCalSeis(Object calSeis);

    public List<ActaEvaluacion> findByCalSeis(Object calSeis,
        int... rowStartIdxAndCount);

    public List<ActaEvaluacion> findByCalSiete(Object calSiete);

    public List<ActaEvaluacion> findByCalSiete(Object calSiete,
        int... rowStartIdxAndCount);

    public List<ActaEvaluacion> findByCalTrece(Object calTrece);

    public List<ActaEvaluacion> findByCalTrece(Object calTrece,
        int... rowStartIdxAndCount);

    public List<ActaEvaluacion> findByCalTres(Object calTres);

    public List<ActaEvaluacion> findByCalTres(Object calTres,
        int... rowStartIdxAndCount);

    public List<ActaEvaluacion> findByCalUno(Object calUno);

    public List<ActaEvaluacion> findByCalUno(Object calUno,
        int... rowStartIdxAndCount);

    public List<ActaEvaluacion> findByCaracterizacionEv(
        Object caracterizacionEv);

    public List<ActaEvaluacion> findByCaracterizacionEv(
        Object caracterizacionEv, int... rowStartIdxAndCount);

    public List<ActaEvaluacion> findByCodEv(Object codEv);

    public List<ActaEvaluacion> findByCodEv(Object codEv,
        int... rowStartIdxAndCount);

    public List<ActaEvaluacion> findByDebilidadEv(Object debilidadEv);

    public List<ActaEvaluacion> findByDebilidadEv(Object debilidadEv,
        int... rowStartIdxAndCount);

    public List<ActaEvaluacion> findByFechaEv(Object fechaEv);

    public List<ActaEvaluacion> findByFechaEv(Object fechaEv,
        int... rowStartIdxAndCount);

    public List<ActaEvaluacion> findByFortalezaEv(Object fortalezaEv);

    public List<ActaEvaluacion> findByFortalezaEv(Object fortalezaEv,
        int... rowStartIdxAndCount);

    /**
    * Find all ActaEvaluacion entities.
    *
    * @param rowStartIdxAndCount
    *            Optional int varargs. rowStartIdxAndCount[0] specifies the the
    *            row index in the query result-set to begin collecting the
    *            results. rowStartIdxAndCount[1] specifies the the maximum
    *            count of results to return.
    * @return List<ActaEvaluacion> all ActaEvaluacion entities
    */
    public List<ActaEvaluacion> findAll(int... rowStartIdxAndCount);

    public List<ActaEvaluacion> findPageActaEvaluacion(String sortColumnName,
        boolean sortAscending, int startRow, int maxResults);

    public Long findTotalNumberActaEvaluacion();
}
